package negocio;

import java.sql.Date;
import java.util.Collection;

public class GestorAdministracion {
	//ATTRIBUTES GENERIC TYPE
	//ATTRIBUTES OWN TYPE
	private	GestorClientes 			gestorClientes;
	private	GestorProveedores 		gestorProveedores;
	private	GestorSucursal			gestorSucursal;
	private	Collection<Tarifa> 		tarifas;
	private MapaDeRutas				mapaDeRutas;
	private Collection<Empleado>	empleados;
	private	GestorVehiculos			gestorVehiculos;
	//METHODS
	public void actualizarDatosEmpresa(int idEmpresa, String contacto, int telefono, Direccion direccion, String mail, CuentaCorriente cuentaCorriente){
		//To Do	
		/*
		 * HG - REVISAR LOS PARAMETROS DE ESTE METODO.	
		 */
	}
	public void actualizarRutas(Sucursal sucursalOrigen, Sucursal sucursalDestino, String camino, Integer duracionMinutosViaje, Float costoDesplazamiento){}
	public Empleado buscarEmpleado(Integer nroLegajo){
		return null;
		//ToDo
		/*
		 * REVISAR ESTE TIPO DE METODO YA QUE DEVUELVE UNA CLASE ABSTRACTA
		 */
	}
	public void borrarEmpleado(Empleado empleadoABorrar){};
	public void modificarEmpleado(Empleado empleadoAModificar, String apellido, String nombre, Integer nroLegajo, Integer nroDocumento, Direccion direccion, Date fechaDeNacimiento, String CUIT){};
	public void anadirEmpleado(String apellido, String nombre, Integer nroLegajo, Integer nroDocumento, Direccion direccion, Date fechaDeNacimiento, Integer CUIT, Integer idSucursal){};
	public void anadirEmpleadoASucursal(Empleado newEmpleado, Sucursal unaSucursal){};
	public void borrarProveedor(int CUIT){};
	public Proveedor agregarProveedor(String razonSocial, Integer CUIT, Collection <Tarifa> ListaPrecios){
		return null;}; 
	public void actualizarEstadoCuentaCorriente(Integer CUIT, Float monto){};
	public Vehiculo contratarVehiculo(Paquete p){
		return null;}; 
	public Proveedor buscarProveedorTransporteMasEconomico(Paquete p){
		return null;};
	public Contrato generarContrato(Paquete p, TarifaTransporte t, Float importe){
		return null;}; 
	public void AsignarVehiculoASucursal(Sucursal s, Vehiculo v){}
	public GestorClientes getGestorClientes() {
		return gestorClientes;
	}
	public void setGestorClientes(GestorClientes gestorClientes) {
		this.gestorClientes = gestorClientes;
	}
	public GestorProveedores getGestorProveedores() {
		return gestorProveedores;
	}
	public void setGestorProveedores(GestorProveedores gestorProveedores) {
		this.gestorProveedores = gestorProveedores;
	}
	public GestorSucursal getGestorSucursal() {
		return gestorSucursal;
	}
	public void setGestorSucursal(GestorSucursal gestorSucursal) {
		this.gestorSucursal = gestorSucursal;
	}
	public Collection<Tarifa> getTarifas() {
		return tarifas;
	}
	public void setTarifas(Collection<Tarifa> tarifas) {
		this.tarifas = tarifas;
	}
	public MapaDeRutas getMapaDeRutas() {
		return mapaDeRutas;
	}
	public void setMapaDeRutas(MapaDeRutas mapaDeRutas) {
		this.mapaDeRutas = mapaDeRutas;
	}
	public Collection<Empleado> getEmpleados() {
		return empleados;
	}
	public void setEmpleados(Collection<Empleado> empleados) {
		this.empleados = empleados;
	}
	public GestorVehiculos getGestorVehiculos() {
		return gestorVehiculos;
	}
	public void setGestorVehiculos(GestorVehiculos gestorVehiculos) {
		this.gestorVehiculos = gestorVehiculos;
	};
}
